package 字符串;

/**
 * @Author Weton Li
 * @Date 2021/3/27 17:20
 */
public class 最长公共前缀 {

    public static String longestCommonPrefix(String[] strs) {
        int len = strs.length;

        int i = 1; // 从第二个字符串开始比较

        String prefix = strs[0];
        while (i < len) {

            String s = longestCommonPrefix(prefix, strs[i]);

            // 迭代 让比较出的结果 和下一个字符串继续比较
            prefix = s;

            i++;
        }
        return prefix;
    }

    public static String longestCommonPrefix(String s1, String s2) {

        // 定义while循环 遍历字符串比较对应每一位
        int minLen = (s1.length() < s2.length()) ? s1.length() : s2.length();
        int index = 0;
        while (index < minLen) {

            if (s1.charAt(index) == s2.charAt(index)) {
                index++; // 如果这两个字符串的第一个字符就两者都不相同，肯定不继续再遍历了
            }else {
                break;
            }


        }
        return s1.substring(0,index);
    }

    public static void main(String[] args) {
        String[] input = {"flower", "flow", "flight"}; //"fl"
        String s = longestCommonPrefix(input);
        System.out.println(s);

    }
}
